package club.bigtian.sync.service;

import club.bigtian.sync.model.TableSchema;

/**
 * 同步服务接口
 * 定义数据同步相关的方法
 */
public interface SyncService {
    
    /**
     * 初始化同步环境
     */
    void init();
    
    /**
     * 执行全量同步
     * 
     * @param tableName 表名
     */
    void fullSync(String tableName);
    
    /**
     * 开始增量同步
     */
    void startIncrementalSync();
    
    /**
     * 停止增量同步
     */
    void stopIncrementalSync();
    
    /**
     * 获取表结构
     * 
     * @param tableName 表名
     * @return 表结构信息
     */
    TableSchema getTableSchema(String tableName);
    
    /**
     * 创建ClickHouse表
     * 
     * @param tableSchema 表结构
     * @return 是否创建成功
     */
    boolean createClickHouseTable(TableSchema tableSchema);
    
    /**
     * 获取同步状态
     * 
     * @return 同步状态信息
     */
    String getSyncStatus();
} 